This section covers all the issues that will have to be resolved when developing this system.

% Below some sections (those I judged relevant) we will need here according to site. 

\subsection{Assumptions and Dependencies}
This design assumes that people want to do as little work on the process of planning as possible.
Another assumption we make is that people want to make their schedule more efficient if possible.
The system assumes it is used via smartphone. Making appointments should be possible anywhere, at any time; smartphones are the most convenient way to ensure this is possible.
However, by making this choice the people that do not have the luxury of a smartphone can’t participate. The system therefore needs a feature to also include those people.

The system depends on a lot of different knowledge sources, most of them web-based. The user's calendar, the weather report, traffic info and so on are examples of these sources.
Datanose and Google calendar can provide users with a base calendar.
It is also greatly dependent on the cooperation and trust of the user. The system becomes less useful the fewer people use it.
 
\subsection{General Constraints}
\label{subsec:genCons}
\paragraph{Privacy} The system should avoid not only explicit but also implicit sharing of a user's schedule.
For example, one might attempt to find out what their peer's schedule looks like by requesting appointments with them at several times of day.
By seeing which appointments are rejected, this will give them an idea of the other person's schedule.
This can be avoided by notifying the user of incoming appointments and giving them the option of rejecting them before the planning phase.
\paragraph{User friendliness} The system should take as much busywork as possible out of the hands of the end user, without ever giving them the feeling that they have no idea what it's doing.
There are three things the system needs to do in order to achieve this:
Firstly the user should be notified of important events, such as the creation of new appointments, so they always know what is being planned for them.
Secondly, the system should always have information on its current state available, so the user can view their schedule at any time.
Thirdly, the user should always be able to overrule the system's decisions and manage their calendar on their own.
\paragraph{Group Usage} The system should still be useful if one's peers do not use it.
This can be done by making sure the system functions like a normal digital calendar on the surface.
The automatic planning and other functionality should build on this foundation.
\paragraph{Personal preferences} People might want to use some functions but hate others. 
Each user should therefore have the notion not to use certain functions.
Perhaps more importantly, communication between agents with different options enabled should not be problematic.
One way to avoid these problems is to make the base assumption that other users have all options enabled.
If communication is possible in this situation, all enabled options can be viewed as added functionality.
 
\subsection{Goals and Guidelines}
As discussed in the solutions to some of the constraints above, the best way to approach the system seems to be a module based design which allows for modules to be added on top of the base system.
The base system should then function like a normal digital calendar.
More functionality, such as automatic travel advice, can then be added onto the basic system.

The goal is to create a system that is convenient on its own and takes away more and more work for each user as they start using more functionality.
An important guideline for this is that each module is designed independently of the others, 
so that all modules can be switched on and off at any time, more modules can be developed after distribution, and users can use the base system without any hindrances.

This article describes the design of the complete system with its functionalities without \emph{explicitly} mentioning the modules. 


%\todo{Is this the place to work this out or somewhere else and just leave a short summary here?}

